home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d884.lha / P-Compress / Object / decrunch.c < prev    next >
C/C++ Source or Header  |  1993-07-16  |  1KB  |  59 lines

  1. #include "exec/types.h"
  2. #include "exec/memory.h"
  3. #include "libraries/dosextens.h"
  4. #include "libraries/dos.h"
  5. #include "stdio.h"
  6.  
  7. main(argc,argv)
  8. int    argc ;
  9. char   *argv[] ;
  10. {
  11.     struct FileHandle   *fi, *fo ;
  12.     int                 result ;
  13.     char                header[4] ; 
  14.  
  15.     if (argc < 3)
  16.      { puts (" Usage: Comp [input file] [output file]\n") ;
  17.        exit(NULL) ;
  18.      }
  19.    
  20.     if ((fi = (struct FileHandle *)Open(argv[1], MODE_OLDFILE)) == 0)
  21.       {
  22.         puts ("Can't open input file\n") ;
  23.         exit (NULL) ; 
  24.       }
  25.     
  26.     Read(fi, header, 4) ;
  27.     if ((header[0] == 'P') && (header[1] == 'R') && (header[2] == 'E')) ;
  28.     else      Seek (fi, -4, 0) ;
  29.         
  30.     Read(fi, header, 2) ;
  31.       
  32.     if ((header[0] != 'L') || (header[1] != 'H'))
  33.       {
  34.         puts ("File not compressed\n");
  35.         Close (fi) ;
  36.         exit(NULL) ;
  37.       }
  38.  
  39.     if ((fo = (struct FileHandle *)Open(argv[2], MODE_NEWFILE)) == 0)
  40.       {
  41.         puts ("Can't open output file\n") ;
  42.         Close (fi) ;
  43.         exit (NULL) ;
  44.       }
  45.  
  46.     result = decompress (fi, fo) ;
  47.  
  48.     Close (fi) ;
  49.     Close (fo) ;
  50.     if      (result == 1)  puts ("Decompression failed\n") ;
  51.     else if (result == 2)  puts ("Out of memory\n") ;
  52.     exit(NULL) ;
  53. }
  54.  
  55.  
  56.  
  57.  
  58.  
  59.